package poker;
import junit.framework.TestCase;


public class SprawdzUkladTest extends TestCase {
    Gracz g = null;
    Gracz g1 = null;
    Gracz g2 = null;
    Gracz g3 = null;
    
    Gracz h = null;
    Gracz h1 = null;
    Gracz h2 = null;
    
    Gracz i = null;
    Gracz i1 = null;
    Gracz i2 = null;
    
    Gracz j = null;
    Gracz j1 = null;
    
    Gracz k = null;
    
    Gracz l = null;
    Gracz l1 = null;
    
    Gracz m = null;
    Gracz m1 = null;
    
    Gracz n = null;
    
    protected void setUp() throws Exception 
    {
        super.setUp();
        /////////////////////////////////////dane do testowania pary
        g = new Czlowiek ("g",0);
        g1 = new Czlowiek ("g",0);
        g2 = new Czlowiek ("g",0);
        g3 = new Czlowiek ("g",0);
        
        g.wezKarte( new Karta(2, 0) );
        g.wezKarte( new Karta(2, 1) );
        g.wezKarte( new Karta(3, 0) );
        g.wezKarte( new Karta(4, 0) );
        g.wezKarte( new Karta(5, 0) );
     
        g1.wezKarte( new Karta(2, 0) );
        g1.wezKarte( new Karta(3, 1) );
        g1.wezKarte( new Karta(3, 0) );
        g1.wezKarte( new Karta(4, 0) );
        g1.wezKarte( new Karta(5, 0) );
        
        g2.wezKarte( new Karta(2, 0) );
        g2.wezKarte( new Karta(3, 1) );
        g2.wezKarte( new Karta(4, 1) );
        g2.wezKarte( new Karta(4, 0) );
        g2.wezKarte( new Karta(5, 0) );
        
        g3.wezKarte( new Karta(2, 0) );
        g3.wezKarte( new Karta(3, 1) );
        g3.wezKarte( new Karta(4, 1) );
        g3.wezKarte( new Karta(5, 1) );
        g3.wezKarte( new Karta(5, 0) );
        ///////////////////////////////////dane do testowania dwoch par
        h = new Czlowiek ("h",0);
        h.wezKarte( new Karta(2, 0) );
        h.wezKarte( new Karta(2, 1) );
        h.wezKarte( new Karta(3, 0) );
        h.wezKarte( new Karta(3, 1) );
        h.wezKarte( new Karta(5, 0) );
        
        h1 = new Czlowiek ("h",0);
        h1.wezKarte( new Karta(2, 0) );
        h1.wezKarte( new Karta(2, 1) );
        h1.wezKarte( new Karta(3, 0) );
        h1.wezKarte( new Karta(5, 1) );
        h1.wezKarte( new Karta(5, 0) );
        
        h2 = new Czlowiek ("h",0);
        h2.wezKarte( new Karta(2, 0) );
        h2.wezKarte( new Karta(3, 1) );
        h2.wezKarte( new Karta(3, 0) );
        h2.wezKarte( new Karta(5, 1) );
        h2.wezKarte( new Karta(5, 0) );
        ////////////////////////////////dane testu trojki
        i = new Czlowiek ("i",0);
        i.wezKarte( new Karta(2, 0) );
        i.wezKarte( new Karta(2, 1) );
        i.wezKarte( new Karta(2, 2) );
        i.wezKarte( new Karta(4, 1) );
        i.wezKarte( new Karta(5, 0) );
        
        i1 = new Czlowiek ("i",0);
        i1.wezKarte( new Karta(2, 0) );
        i1.wezKarte( new Karta(3, 1) );
        i1.wezKarte( new Karta(3, 2) );
        i1.wezKarte( new Karta(3, 0) );
        i1.wezKarte( new Karta(5, 0) );
        
        i2 = new Czlowiek ("i",0);
        i2.wezKarte( new Karta(2, 0) );
        i2.wezKarte( new Karta(3, 1) );
        i2.wezKarte( new Karta(4, 2) );
        i2.wezKarte( new Karta(4, 1) );
        i2.wezKarte( new Karta(4, 0) );
        /////////////////////////////////////dane do testu strita
        j = new Czlowiek ("i",0);
        j.wezKarte( new Karta(2, 0) );
        j.wezKarte( new Karta(3, 1) );
        j.wezKarte( new Karta(4, 2) );
        j.wezKarte( new Karta(5, 1) );
        j.wezKarte( new Karta(14, 0) );
        
        j1 = new Czlowiek ("i",0);
        j1.wezKarte( new Karta(2, 0) );
        j1.wezKarte( new Karta(3, 1) );
        j1.wezKarte( new Karta(4, 2) );
        j1.wezKarte( new Karta(5, 1) );
        j1.wezKarte( new Karta(6, 0) );
        /////////////////////////////////////dane do testu koloru
        k = new Czlowiek("k",0);
        k.wezKarte( new Karta(2, 0) );
        k.wezKarte( new Karta(3, 0) );
        k.wezKarte( new Karta(4, 0) );
        k.wezKarte( new Karta(7, 0) );
        k.wezKarte( new Karta(8, 0) );
        ///////////////////////////////dane do testu full
        l = new Czlowiek("l",0);
        l.wezKarte( new Karta(2, 0) );
        l.wezKarte( new Karta(2, 1) );
        l.wezKarte( new Karta(5, 2) );
        l.wezKarte( new Karta(5, 0) );
        l.wezKarte( new Karta(5, 2) );
        
        l1 = new Czlowiek("l",0);
        l1.wezKarte( new Karta(2, 0) );
        l1.wezKarte( new Karta(2, 1) );
        l1.wezKarte( new Karta(2, 2) );
        l1.wezKarte( new Karta(5, 0) );
        l1.wezKarte( new Karta(5, 2) );
        ///////////////////////////////////dane do testu karety
        m = new Czlowiek("m",0);
        m.wezKarte( new Karta(2, 0) );
        m.wezKarte( new Karta(2, 1) );
        m.wezKarte( new Karta(2, 2) );
        m.wezKarte( new Karta(2, 3) );
        m.wezKarte( new Karta(5, 2) );
        
        m1 = new Czlowiek("m",0);
        m1.wezKarte( new Karta(2, 0) );
        m1.wezKarte( new Karta(5, 1) );
        m1.wezKarte( new Karta(5, 2) );
        m1.wezKarte( new Karta(5, 3) );
        m1.wezKarte( new Karta(5, 0) );
        /////////////////////////////////dane do testu pokera
        n = new Czlowiek("n",0);
        n.wezKarte( new Karta(10, 0) );
        n.wezKarte( new Karta(11, 0) );
        n.wezKarte( new Karta(12, 0) );
        n.wezKarte( new Karta(13, 0) );
        n.wezKarte( new Karta(14, 0) );
        
    }
    
    public void testPara()
    {
        assertEquals("Para", SprawdzUklad.jakiUklad(g.pokazKarty()));
        assertEquals("Para", SprawdzUklad.jakiUklad(g1.pokazKarty()));
        assertEquals("Para", SprawdzUklad.jakiUklad(g2.pokazKarty()));
        assertEquals("Para", SprawdzUklad.jakiUklad(g3.pokazKarty()));
    }
    public void testDwiePary()
    {
        assertEquals("Dwie pary", SprawdzUklad.jakiUklad(h.pokazKarty()));
        assertEquals("Dwie pary", SprawdzUklad.jakiUklad(h1.pokazKarty()));
        assertEquals("Dwie pary", SprawdzUklad.jakiUklad(h2.pokazKarty()));       
    }
    public void testTrojka()
    {
        assertEquals("Trojka", SprawdzUklad.jakiUklad(i.pokazKarty()));
        assertEquals("Trojka", SprawdzUklad.jakiUklad(i1.pokazKarty()));
        assertEquals("Trojka", SprawdzUklad.jakiUklad(i2.pokazKarty()));       
    }
    public void testStrit()
    {
        assertEquals("Strit", SprawdzUklad.jakiUklad(j.pokazKarty()));
        assertEquals("Strit", SprawdzUklad.jakiUklad(j1.pokazKarty()));
    }
    public void testKolor()
    {
        assertEquals("Kolor", SprawdzUklad.jakiUklad(k.pokazKarty()));   
    }
    public void testFull()
    {
        assertEquals("Full", SprawdzUklad.jakiUklad(l.pokazKarty()));   
        assertEquals("Full", SprawdzUklad.jakiUklad(l1.pokazKarty()));  
    }
    public void testCzworka()
    {
        assertEquals("Kareta", SprawdzUklad.jakiUklad(m.pokazKarty()));  
        assertEquals("Kareta", SprawdzUklad.jakiUklad(m1.pokazKarty()));  
    }
    public void testPoker()
    {
        assertEquals("Poker", SprawdzUklad.jakiUklad(n.pokazKarty())); 
       
    }
    
    public void testRemis()
    {
        int wynik = SprawdzUklad.porownajTeSameUklady(n.pokazKarty(), n.pokazKarty(), 8);
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(g.pokazKarty(), g.pokazKarty(), 1); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(g1.pokazKarty(), g1.pokazKarty(), 1); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(g2.pokazKarty(), g2.pokazKarty(), 1); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(g3.pokazKarty(), g3.pokazKarty(), 1); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(h.pokazKarty(), h.pokazKarty(), 2); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(h1.pokazKarty(), h1.pokazKarty(), 2); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(h2.pokazKarty(), h2.pokazKarty(), 2); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(i.pokazKarty(), i.pokazKarty(), 2); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(i1.pokazKarty(), i1.pokazKarty(), 2); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(i2.pokazKarty(), i2.pokazKarty(), 2); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(j.pokazKarty(), j.pokazKarty(), 3); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(j1.pokazKarty(), j1.pokazKarty(), 3); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(k.pokazKarty(), k.pokazKarty(), 4); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(l.pokazKarty(), l.pokazKarty(), 4); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(l1.pokazKarty(), l1.pokazKarty(), 4); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(m.pokazKarty(), m.pokazKarty(), 4); 
        assertTrue(wynik == 0);
        wynik = SprawdzUklad.porownajTeSameUklady(m1.pokazKarty(), m1.pokazKarty(), 4); 
        assertTrue(wynik == 0);
    }
    protected void tearDown() throws Exception {
        super.tearDown();
    }

}
